//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  ntlworldfield.h
//
//  copyright (c) 2005 ntl Ltd.
//
//  author : woody1019
//
//  purpose : manage field
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#pragma once


#include "ntlworldcommon.h"

//////////////////////////////////////////////////////////////////////////
// dNTL_WORLD_FILE : DEFINE
//////////////////////////////////////////////////////////////////////////
#ifdef dNTL_WORLD_FILE

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// definition : CNtlWorldField
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class CNtlWorldField
{
public:
	CNtlWorldField(void);
	virtual ~CNtlWorldField(void);
	void Init(RwV3d& Pos);
	void Free();

private:
	RwV3d				m_SPos;
	sCUR_FIELD_TEX_INFO	m_TexAttr;
	sNTL_FIELD_PROP*	m_pProp;

public:
	RwV3d					GetSPos() { return m_SPos; }
	sCUR_FIELD_TEX_INFO&	GetTexAttr() { return m_TexAttr; }
	sNTL_FIELD_PROP*		GetProp() { return m_pProp; }
	VOID					SetTexAttrDefault();
	
public:
	RwBool CreateFieldInMemory(RwInt32 FieldIdx);
	RwBool CreateFieldFromFile(RwInt32 FieldIdx);
	RwBool DeleteFieldInMemory(RwInt32 FieldIdx);
	RwBool DeleteFieldIntoFile(RwInt32 FieldIdx);

//	static BYTE* Name
};

//////////////////////////////////////////////////////////////////////////
// dNTL_WORLD_FILE : DEFINE
//////////////////////////////////////////////////////////////////////////
#else

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// definition : CNtlWorldField
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class CNtlWorldField
{
public:
	CNtlWorldField(void);
	virtual ~CNtlWorldField(void);
	void Init(RwV3d& Pos);
	void Free();

private:
	RwV3d				m_SPos;
	sCUR_FIELD_TEX_INFO	m_TexAttr;
	sNTL_FIELD_PROP*	m_pProp;

public:
	RwV3d					GetSPos() { return m_SPos; }
	sCUR_FIELD_TEX_INFO&	GetTexAttr() { return m_TexAttr; }
	sNTL_FIELD_PROP*		GetProp() { return m_pProp; }
	VOID					SetTexAttrDefault();

public:
	RwBool CreateFieldInMemory(RwInt32 FieldIdx);
	RwBool CreateFieldFromFile(RwInt32 FieldIdx);
	RwBool DeleteFieldInMemory(RwInt32 FieldIdx);
	RwBool DeleteFieldIntoFile(RwInt32 FieldIdx);
};

//////////////////////////////////////////////////////////////////////////
// dNTL_WORLD_FILE : DEFINE
//////////////////////////////////////////////////////////////////////////
#endif